/*
$(function () {
    window.keyword="";
    window.pageNum=1;
    window.pageSize=5;
    //显示数据
    showPage();
    $("#searchBtn").click(function () {
        var keyword=$('#keywordInput').val();
        if(keyword.length==0){
            layer.msg("关键字不能为空");
            return ;
        }
        window.keyword=keyword;
        showPage();
    })
});
function showPage() {
    $.ajax({
        url:"/role/search/by/keyword",
        type:"post",
        dataType:"JSON",
        data:{
            "keyword":window.keyword,
            "pageNum":window.pageNum,
            "pageSize":window.pageSize
        },
        success:function(ajaxResult){
            if (ajaxResult.result=="SUCCESS"){
                //清空原来的数据
                $("#roleTableBody").empty();
                //获取数据
                var list=ajaxResult.data.list;
                if (list.length>0){
                    //有数据
                    for(var i=0;i<list.length;i++){
                        var $tr=$('<tr></tr>');
                        var $td1=$('<td>'+(i+1)+'</td>');
                        var $td2=$('<td><input type="checkbox"></td>');
                        var $td3=$('<td>'+list[i].name+'</td>');
                        var $td4=$('<td></td>');
                        $td4.append('<button type="button" class="btn btn-success btn-xs"><i class=" glyphicon glyphicon-check"></i><tton>');
                        $td4.append('<button type="button" class="btn btn-primary btn-xs"><i class=" glyphicon glyphicon-pencil"></i><tton>');
                        $td4.append('<button type="button" class="btn btn-danger btn-xs"><i class=" glyphicon glyphicon-remove"></i><tton>');

                        $tr.append($td1);
                        $tr.append($td2);
                        $tr.append($td3);
                        $tr.append($td4);

                        $("#roleTableBody").append($tr);
                    }
                   //调用分页
                    initPagination(Result.data());
                }else{
                    //没数据
                    var $tr=$('<tr></tr>');
                    var $td=$('<td colspan="4">对不起，没有查询到相应的角色！！</td>');
                    $tr.append($td);
                    $("#roleTableBody").append($tr);
                }
            }else{
                layer.msg("获取角色数据失败！");
            }
        }
    })

}
// 声明函数封装导航条初始化操作
function initPagination(pageInfo) {
    // 声明变量存储总记录数
   /!* var totalRecord =pageInfo.total;*!/
    // 声明变量存储分页导航条显示时的属性设置
    var paginationProperties = {
        num_edge_entries : 3,			//边缘页数
        num_display_entries : 4,		//主体页数
        callback : pageselectCallback,	//回调函数
        items_per_page :window.pageSize,	//每页显示数据数量，就是pageSize
        current_page :window.pageNum-1,//当前页页码
        prev_text : "上一页",			//上一页文本
        next_text : "下一页"			//下一页文本
    };
    // 显示分页导航条
    $("#Pagination").pagination(totalRecord, paginationProperties);
}

// 在每一次点击“上一页”、“下一页”、“页码”时执行这个函数跳转页面
function pageselectCallback(pageIndex, jq) {
    // pageIndex从0开始，pageNum从1开始
    var pageNum = pageIndex + 1;
    //更新当前页
    window.pageNum=pageNum;
    var keyword=window.keyword;
    // 跳转页面
showPage()

    return false;
}*/
$(function () {
    //定义全局变量
    window.pageNum = 1;
    window.pageSize = 5;
    window.keyword = "";
    // 在全局作用域内创建roleIdArray
    window.roleIdArray = new Array();
    //显示数据
    showPage();
    //关键字查询
    $("#searchBtn").click(function(){
        // 在单击响应函数中获取文本框中输入的数据
        var keyword = $.trim($("#keywordInput").val());

        // 验证输入数据是否有效
        if(keyword == null || keyword == "") {
            // 如果无效，提示，停止函数执行
            layer.msg("请输入关键词！");
            return ;
        }

        // 如果有效，赋值给window.keyword
        window.keyword = keyword;

        // 调用showPage()重新分页
        showPage();
    });
    //全选/全不选功能
    $("#summaryBox").click(function () {
        //1.获取当前checkbox的选中状态
        var currentStatus=this.checked;
        //2.设置itembox的选中状态
        $(".itemBox").prop("checked",currentStatus);
    })
  /*  //绑定批量删除
    $("#batchRemoveBtn").click(function () {
        //清空数据
        window.roleIdArray = new Array();
        var length=$('.itemBox:checked').length;
        if(length==0){
            layer.msg("请至少选中一行数据!");
            return ;
        }
        $('.itemBox:checked').each(function () {
            var roleId=$(this).attr("roleid");
            window.roleIdArray.push(roleId);
        });
        showRemoveConfirmModal();
    });*/
    //绑定批量删除
    $("#batchRemoveBtn").click(function () {
        //清空数据
        window.roleIdArray = new Array();

        var length=$('.itemBox:checked').length;
        if (length==0){
            layer.msg("请至少选中一行数据！");
            return ;
        }
        //获取选中id,放到数组中

        $('.itemBox:checked').each(function () {
            var roleId=$(this).attr("roleid");
            window.roleIdArray.push(roleId);
        });

        //弹出模态框
        showRemoveConfirmModal();
    });
    //确认删除
    $("#confirmModalBtn").click(function () {
        var requestBody=JSON.stringify(window.roleIdArray);
        $.ajax({
            url:"/role/batch/remove",
            type:"post",
            data:requestBody,
            contentType:"application/json;charset=utf-8",
            dataType:"json",
            success:function (response) {
                var result=response.result;
                if(result=="SUCCESS"){
                    layer.msg("操作成功");
                    showPage();
                }
                if(result=="FAILED"){
                    layer.msg(response.message);
                }
                $("#confirmModal").modal("hide");
            },
            "error":function (response) {
                layer.msg(response.message)
            }
        })
    })
    //单条删除
    $("#roleTableBody").on("click",".removeBth",function () {
        //获取当前记录的roleId
        var roleId=$(this).attr("roleid");
        //存在全局变量数组
        window.roleIdArray=new Array();
        window.roleIdArray.push(roleId);
        //打开模态框
        showRemoveConfirmModal();
    })
    //增加
    $("#addBtn").click(function () {
        $("#addModal").modal("show");
    })
    //确认添加
    $("#addModalBtn").click(function () {
        // 1.收集文本框内容
        var roleName = $.trim($("#roleNameInput").val());
        if(roleName == null || roleName == "") {
            layer.msg("请输入有效角色名称！");
            return ;
        }
        $.ajax({
            url:"/role/save/role",
            type:"post",
            data:{
                "roleName":roleName
            },
            dataType:"json",
            success:function (response) {
                var result = response.result;
                if(result == "SUCCESS") {
                    layer.msg("操作成功！");
                    // 前往最后一页
                    window.pageNum = 999999;
                    showPage();
                    // 不管成功还是失败，关闭模态框
                    $("#addModal").modal("hide");

                    // 清理本次在文本框填写的数据
                    $("#roleNameInput").val("");
                }else {
                    layer.msg(response.message);
                }
            }
        });
    });
    //修改
    $("#roleTableBody").on("click",".editBtn",function(){

        // 1.获取当前按钮的roleId
        window.roleId = $(this).attr("roleId");

        // 2.获取当前按钮所在行的roleName
        var roleName = $(this).parents("tr").children("td:eq(2)").text();

        // 3.修改模态框中文本框的value值，目的是在显示roleName
        $("#roleNameInputEdit").val(roleName);

        // 4.打开模态框
        $("#editModal").modal("show");
    });
    //确认修改
    $("#editModalBtn").click(function () {
        // 1.获取文本框值
        var roleName = $.trim($("#roleNameInputEdit").val());

        if(roleName == null || roleName == "") {
            layer.msg("请输入有效角色名称！");

            return ;
        }
        $.ajax({
            url:"/role/update/role",
            type:"post",
            data:{
                "id":window.roleId,
                "name":roleName
            },
            dataType:"json",
            success:function (response) {
                var result = response.result;
                if(result == "SUCCESS") {
                    layer.msg("操作成功！");
                    // 3.操作成功重新分页
                    showPage();
                }
                if(result == "FAILED") {
                    layer.msg(response.message);
                }

                // 4.不管成功还是失败，关闭模态框
                $("#editModal").modal("hide");
            }
        });
    });
});
/*
function showPage() {
    $.ajax({
        url:"/role/search/by/keyword",
        type:"post",
        dataType:"JSON",
        data:{
            "pageNum":window.pageNum,
            "pageSize":window.pageSize,
            "keyword":window.keyword
        },

        success:function (result) {

            if(result.result=="SUCCESS"){
                //解析数据
                $("#roleTableBody").empty();
                // 获取数据集合
                var list = result.data.list;
                // 判断list是否有效
                if(list == null || list.length == 0) {
                    $("#roleTableBody")
                        .append("<tr><td colspan='4' style='text-align:center;'>没有查询到数据！</td></tr>");

                    return ;
                }
                for(var i = 0; i < list.length; i++) {
                    var role = list[i];

                    //数据
                    var numberTd = "<td>"+(i+1)+"</td>";
                    var checkBoxTd = "<td><input class='itemBox' roleid='"+role.id+"' type='checkbox'></td>";
                    var roleNameTd = "<td>"+role.name+"</td>";

                    //按钮
                    var checkBtn = "<button type='button' class='btn btn-success btn-xs'><i class=' glyphicon glyphicon-check'></i></button>";
                    var pencilBtn = "<button type='button' class='btn btn-primary btn-xs'><i class=' glyphicon glyphicon-pencil'></i></button>";
                    var removeBtn = "<button type='button' roleId='\"+role.id+\"' class='btn btn-danger btn-xs  removeBtn'><i class=' glyphicon glyphicon-remove'></i></button>";

                    var btnTd = "<td>"+checkBtn+" "+pencilBtn+" "+removeBtn+"</td>";

                    var tr = "<tr>"+numberTd+checkBoxTd+roleNameTd+btnTd+"</tr>";

                    // 将前面拼好的HTML代码追加到#roleTableBody中
                    $("#roleTableBody").append(tr);
                }

                //显示分页导航
                initPagination(result.data);
            }else{
                layer.msg(result.message);
            }
        }
    });
}
//声明函数封装导航条初始化操作
function initPagination(pageInfo) {
    // 声明变量存储分页导航条显示时的属性设置
    var paginationProperties = {
        num_edge_entries : 3,        //边缘页数
        num_display_entries : 5,      //主体页数
        callback : pageselectCallback, //回调函数
        items_per_page : window.pageSize,  //每页显示数据数量，就是pageSize
        current_page : window.pageNum - 1,//当前页页码
        prev_text : "上一页",       //上一页文本
        next_text : "下一页"        //下一页文本
    };

    // 显示分页导航条
    $("#Pagination").pagination(pageInfo.total, paginationProperties);
}
// 在每一次点击“上一页”、“下一页”、“页码”时执行这个函数跳转页面
function pageselectCallback(pageIndex, jq) {
    // pageIndex从0开始，pageNum从1开始
    var pageNum = pageIndex + 1;
    // 跳转页面
    window.pageNum=pageNum;
    var keyword=window.keyword;
    showPage();
    return false;
}

function showRemoveConfirmModal() {
    // 1.将模态框显示出来
    $("#confirmModal").modal("show");
    //显示要删除的数据
    var requestBody = JSON.stringify(window.roleIdArray);
    // 2.发送Ajax请求
    var ajaxResult = $.ajax({
        url:"/role/get/list/by/id/list",
        type:"post",
        data:requestBody,
        contentType:"application/json;charset=UTF-8",
        dataType:"json",
        success:function (ajaxResult) {
            if(ajaxResult.result == "SUCCESS") {
                // 5.如果成功，显示数据
                // 3.清空#confirmModalTableBody
                $("#confirmModalTableBody").empty();
                // 4.填充#confirmModalTableBody
                var roleList =ajaxResult.data;
                for(var i = 0; i < roleList.length; i++) {

                    // 5.获取角色相关数据
                    var role = roleList[i];

                    var id = role.id;

                    var name = role.name;

                    var trHTML = "<tr><td>"+id+"</td><td>"+name+"</td></tr>";

                    // 6.执行填充
                    $("#confirmModalTableBody").append(trHTML);
                }
            } else{
                layer.msg(ajaxResult.message);
                return null;
            }
        }
    });

}

*/
//显示数据
function showPage() {
    //发送ajax请求，渲染数据
    $.ajax({
        url:"/role/search/by/keyword",
        type:"post",
        dataType:"JSON",
        data:{
            "keyword":window.keyword,
            "pageNum":window.pageNum,
            "pageSize":window.pageSize
        },
        success:function (ajaxResult) {
            if (ajaxResult.result=="SUCCESS"){
                //清空原来的数据
                $("#roleTableBody").empty();
                //获取数据
                var list=ajaxResult.data.list;
                if (list.length>0){
                    //有数据
                    for(var i=0;i<list.length;i++){
                        var $tr=$('<tr></tr>');
                        var $td1=$('<td>'+(i+1)+'</td>');
                        var $td2=$('<td><input roleid="'+list[i].id+'" class="itemBox" type="checkbox"></td>');
                        var $td3=$('<td>'+list[i].name+'</td>');
                        var $td4=$('<td></td>');
                        $td4.append('<button type="button" class="btn btn-success btn-xs"><i class=" glyphicon glyphicon-check"></i></button>');
                        $td4.append('<button roleid="'+list[i].id+'" type="button" class="editBtn btn btn-primary btn-xs">' +
                            '<i class=" glyphicon glyphicon-pencil"></i>' +
                            '</button>');
                        $td4.append('<button roleid="'+list[i].id+'" type="button" class="removeBtn btn btn-danger btn-xs">' +
                            '<i class=" glyphicon glyphicon-remove"></i>' +
                            '</button>');

                        $tr.append($td1);
                        $tr.append($td2);
                        $tr.append($td3);
                        $tr.append($td4);

                        $("#roleTableBody").append($tr);
                    }

                    //调用分页
                    initPagination(ajaxResult.data);
                }else{
                    //没数据
                    var $tr=$('<tr></tr>');
                    var $td=$('<td colspan="4">对不起，没有查询到相应的角色！！</td>');
                    $tr.append($td);
                    $("#roleTableBody").append($tr);
                }
            }else{
                layer.msg("获取角色数据失败！");
            }
        }
    });
}

// 声明函数封装导航条初始化操作
function initPagination(pageInfo) {
    // 声明变量存储总记录数
    var totalRecord = pageInfo.total;
    // 声明变量存储分页导航条显示时的属性设置
    var paginationProperties = {
        num_edge_entries : 3,        //边缘页数
        num_display_entries : 4,      //主体页数
        callback : pageselectCallback, //回调函数
        items_per_page : window.pageSize,    //每页显示数据数量，就是pageSize
        current_page : window.pageNum-1,//当前页页码
        prev_text : "上一页",       //上一页文本
        next_text : "下一页"        //下一页文本
    };
    // 显示分页导航条
    $("#Pagination").pagination(totalRecord, paginationProperties);
}

// 在每一次点击“上一页”、“下一页”、“页码”时执行这个函数跳转页面
function pageselectCallback(pageIndex, jq) {
    // pageIndex从0开始，pageNum从1开始
    var pageNum = pageIndex + 1;
    //更新当前页
    window.pageNum=pageNum;
    var keyword=window.keyword;
    // 跳转页面
    showPage();

    return false;
}

function showRemoveConfirmModal() {
    //清空
    $("#confirmModalTableBody").empty();
    $("#confirmModal").modal("show");

    //把角色id数组转成json
    var requestBody = JSON.stringify(window.roleIdArray);
    //显示要删除的数据
    $.ajax({
        url:"/role/get/list/by/id/list",
        type:"post",
        data:requestBody,
        contentType:"application/json;charset=UTF-8",
        dataType:"json",
        success:function (ajaxResult) {
            if (ajaxResult.result=="SUCCESS"){
                var list=ajaxResult.data;
                for(var i=0;i<list.length;i++){
                    var $tr=$('<tr></tr>');
                    var $td1=$('<td>'+(i+1)+'</td>');
                    var $td2=$('<td>'+list[i].name+'</td>');
                    $tr.append($td1);
                    $tr.append($td2);

                    $("#confirmModalTableBody").append($tr);
                }

            }else{
                layer.msg("数据加载失败！");
            }
        }
    });
}
